//
//  MZAniDemoViewModel.h
//  MZAnimationDemo
//
//  Created by Chris Yang on 2016/11/30.
//  Copyright © 2016年 Chris Yang. All rights reserved.
//

#import <UIKit/UIKit.h>

typedef NS_ENUM(NSInteger, MZAnimationTag) {
    MZAnimationTagUnknown = -1,
    
    MZAnimationTagBase,
    MZAnimationTagTransfer,     /* 转场动画 */
    MZAnimationTagPosition,     /* 位置动画 */
    MZAnimationTagAlpha,        /* 透明度动画 */
    MZAnimationTagScale,        /* 比例动画 */
    MZAnimationTagRotate,       /* 旋转动画 */
    
    MZAnimationTagGIF,          /* GIF动画 */
    
    MZAnimationTagTwinkle,      /* 闪烁动画 */
    MZAnimationTagLineShake,    /* 线性抖动动画 */
    MZAnimationTagPlaneShake,   /* 平面抖动动画 */
    MZAnimationTagExpandShrink, /* 膨胀收缩动画 */    
};

@class MZAniDemoViewModel;

@protocol MZAniDemoViewModelDelegate <NSObject>

- (void)viewModel:(MZAniDemoViewModel *)model duraitonDidUpdate:(float)duration;

@end

@interface MZAniDemoViewModel : NSObject

@property (nonatomic, weak) id<MZAniDemoViewModelDelegate>delegate;

@property (nonatomic) float animationDuration;

/* Animation Handle */
- (void)addAnimationWithView:(UIView *)aniView aniTag:(MZAnimationTag)tag;

/* View Suppotr */
-  (UIAlertController *)durationSettingActionSheet;

- (NSArray *)aniTitleArray;

@end
